Welcome to EasyTransfer! EasyTransfer is ⌐1992-1995 Christopher Reid. You may distribute unregistered copies of EasyTransfer, but only in an unmodified form, and together with this documentation. Special notice to CD-ROM producers: you may not include EasyTransfer on a CD-ROM without prior permission. I always grant permission, this is only to make sure that the very latest release is used.
EasyTransfer is a file transfer utility that allows you to access files on Macintosh computers over the Internet. In a way, it is a bit like ftp, except that is designed to run exclusively on Macs. EasyTransfer is really two applications: a server (EasyServer) to make a Mac accessible over the Internet, and a client (EasyClient) to actually access it. Mac files are rather different from 'conventional' files. This means that they must be preprocessed ("BinHex'd") before they can be transmitted over a network (making the files larger than they have to be). Because EasyTransfer runs on Macs only, it completely avoids this extra effort. One of the main aims of EasyTransfer is to provide a simple, easy to use way of accessing remote Macs. The functionality it offers has deliberately been restricted. EasyTransfer offers fast data transfer. Over local links throughput of 350kBytes/sec is possible. It also provides run-time compression (40% - 60% is typical). The latest version of EasyTransfer can always be obtained from ftp://mac-ftp.cs.strath.ac.uk/macstuff/EasyTransfer/. Setup is very easy and a step-by-step guide is provided. Please make sure you read step 5 under 'Setting up EasyClient', as it is extremely important for slow-line links such as modems.
What's different from version 2.x.x
Well, just about everything. V3.x.x is a complete rewrite from scratch. The user interface has remained pretty much the same. Performance (in terms of throughput) has increased almost tenfold, subject to link speed. Run-time compression now works reliably. Several other new features have been added.
What's new in this version (3.1.0b8)
This release enhances the network security considerably. The server now offers three levels of protection: name/passwoord, IP address screening, and the use of a Mac identifier (an identifier which (pretty much) uniquely identifies every Mac in the world). Apart from that, several minor bug fixes have been made. EasyTransfer now supports Ballon Help.
Security Considerations
Installing a server on your Mac potentially opens it up for attack from the outside world. EasyTransfer now virtually eliminates this problem by providing three-way protection. By far the most effective way is to use the unique Mac identifier. This restricts access to the server to a single Mac of your choice (say, your Mac at home). EasyServer and EasyClient will establish the caller's Mac ID even before you've typed in your password (in fact, if it's not the nominated Mac the server will close the connection even before anybody has a chance to type in the password). Simply run EasyClient, and select 'Access Code...' from the File Menu. This will display a code that is unique for each Mac (try it!). Then enter this identifier in the server. You may also specify a list of IP addresses the server is willing to talk to. Incoming request from an address not in the list will be rejected. Anybody with critical data should contact me directly to obtained a version that is guaranteed to be virus/trap/whatever free (NOTE: this doesn't mean that what's archived contains any such things, it's just to be on the safe side).
System Requirements
All you'll need is MacTCP (preferably 2.0.6), 1.5M free RAM (more if the server is to serve more than one connection at the same time. Also, the more RAM, the faster).
Setting up EasyServer
1)
After opening the application, select 'Preferences' from the file menu.
2)
The first set of controls let you change how data transfers are logged and how EasyServer behaves when it is in the background. The log options are straightforward. If the 'Hide in Background' option is checked, EasyServer will hide its log window when in the background.
3)
The next set of options allow you to configure 'users', ie. people who are allowed to connect to your Mac. Click 'New User' to add a user. Assign the user a name, and an optional password. Specify whether the user can read from disk, write from disk, or both. Also specify whether this user has access to the whole of your Mac (ie. all mounted volumes), or only to one folder which you can specify. IMPORTANT: if you only allow folder access, make sure you select the folder by clicking the 'Set...' button, or the server will close the connection as soon as this user connects. You may add as many users as you like. If you are worried about security you should check the 'Use Mac Identification' box and eneter the remote Mac's access code. To obtain the code, run EasyClient on the Mac you wish to connect from (eg. your home Mac), and select 'Access Code...' from the file manu. Write down the access code and enter it into the server. Note that this is by far the most effective way of protection. But how do I make files accessible on different disks without allowing access to the whole Mac? That's easy. Create a folder for the user in question. Make this the default folder for the user. Then simply put Aliases to the folders you wish to make accessible into the users' folder. Many people have asked me why I don't use Users & Groups to control access: firstly, because it is sloooooow. Secondly, because the revised three-level server protection is *much* more secure.
4)
The next few controls allow you to change security options. If you check 'Need Password', then further accesses to the preference dialog are password protected. If you 'Lock Prefences', the preference file EasyServer uses will be encrypted, locked and moved, so that nobody can delete your preferences and install new ones. When 'Start in Background' is checked, EasyServer will relinquish control back to the Finder as soon as it is started. This is handy if you put EasyServer in your Startup Items folder. 'Max. Connections' specifies the number of simultaneous connections the server support. Make sure you increase the server's memory partition from the Finder if you set this to a value greater than two (2MB - 3MB is sufficient). You may specify a list of IP addresses the server is willing to talk to. Any connection request from a source not in this list will be rejected. To activate the list, check the 'Use Access List' box. The IP addresses *MUST* be entered in numeric form (eg. 130.159.144.188), because one IP address may map to more than one name. To find out your numeric IP address, run EasyServer. The IP address is displayed in the Log Window.
Setting up EasyClient
1)
Simply enter the address of the Mac you would like to connect to in the opening dialog box. Click 'Add' to permanently keep it there. Click 'Remove' to delete an undesired entry. Click OK.
2)
Once the connection is made, you will be asked for a user name. Enter it, but bear in mind that EasyTransfer is case sensitive. You will be asked for a password. Again, enter it.
3)
As soon as the login has been confirmed, you may transfer files. The interface is similar to the Finder's Open or Save dialog. It should be pretty much self-explanatory. You may transfer files by simply dropping them onto EasyClient's Icon (folders too!).
4)
When the 'Compression' box is checked, EasyTransfer will use run-time compression. The usefulness of this depends on the speed of the connection you have.
5)
VERY IMPORTANT - YOU MUST READ THIS: The 'Slow Link' checkbox controls how data is sent. To achieve high throughput, EasyTransfer will send many packets at once to enable MacTCP to transmit at interupt time. Once a packet has been 'registered' with MacTCP, this call CANNOT be reversed: the packet will eventually be sent. This works pretty well, except when you cancel the file transfer. What happens is that the server receives the cancelation, but many packets are already 'on their way'. This matters very little over a fast link as the packets are silently ignored. Over a modem link, however, it gives the impression that the connection is hung. The client will display the amount of 'dead' bytes that arrive. That's where the 'Slow Link' options comes into play. It causes EasyTransfer to do much less 'buffering'. In other words, only a small amount of data arrives once you have canceled a transfer. Please note that this problem really only arises when you cancel an operation. If you don't intend to cancel, you don't have to check it.
6)
It is possible to 'abort' a connection rather than to close it. Aborting is different from closing as it causes queued packets to be dropped. To abort, select 'Abort' from the file menu. Use this when you canceled a transfer, but forgot to check the 'Slow Link' option. It will close the connection, but free the line. Use only in emergencies as MacTCP is VERY unforgiving when a TCP connection is aborted (and there is still data in transit) rather than gracefully closed down.
7)
You may transfer files/folders by dragging them onto EasyClient's Icon or an Alias to it. It's handy to keep an Alias on the Desktop. Note: Dropping folders onto the Icon is the only way to transfer whole folders from client to server. If dropping files doesn't seem to work, you have to rebuild your desktop (probably because you have used an earlier version that didn't support it). To do that, hold down the Option and Command key and restart your Mac.
8)
To obtain a unique identifier for your Mac, select 'Access Code...' from the file menu. Write down the code and use it on the server. Important: the access code entered in the server must be the one of the Mac you are trying to connect from, not the server Mac.
EasyTransfer is Shareware!
The shareware fee for EasyTransfer (EasyClient and EasyServer) is US$20. Site licences are also available, please contact me for further details. I can accept cash in any currency (preferable either pounds sterling or US$), or cheques made out in pounds sterling (the amount depends on the current exchange rate). Cheques made out in a currency other than UK pounds are subject to a US$15 handling charge. Please register if you use it. Send payment to:
Please feel free to e-mail me problems or suggestions any time. My e-mail address is cr@cs.strath.ac.uk. I usually fix problems as soon as they are reported. I'm also happy to implement good suggestions for improvements.
Legal Stuff etc.
EasyTransfer is ⌐1992-1995 Christopher Reid. It is understood using the software is entirely on your own risk, and that the author is not responsible for any damage that might occur.
Acknowledgements
EasyTransfer was written using Symantec C++. Part of this code is based on Eric Scouten's TurboTCP C++ class library. So, partially ⌐Symantec and ⌐Eric Scouten, too. Special thanks go to Eric for providing an excellent framework for building MacTCP applications.
The To-Do List
Go native! Some day I'll get round to porting the lot to CW5. Then again, Rainbow might arrive here first... Other than that, I'm happy to implement any sensible improvement/feature that is suggested to me. Please do suggest!
Version History
3.1.0b8
Enhanced security considerably. EasyServer now supports three levels of security: user name/password, IP address screening, and a unique Mac identifier. Added Balloon Help.
3.0.0b7
Added Drag-and-Drop support. EasyTransfer now supports transfer of whole folders (and folders contained therein).
3.0.0b6
Displays a message when MacTCP isn't available rather than crash.
3.0.0b5
Added options for client to store frequently used remote servers.
3.0.0b4
Added the option to 'slow down' transfers. This prevents data arriving after an operation has been canceled (normally, packets are queued to be sent at interupt time, and once packets are queued, they cannot be removed. Hence the impression of a hung connection).
3.0.0b3
Server is now much more CPU "polite". It will only hog the CPU while files are actually transfered.
Performance has improved. Over local links throughput is about 350kBytes/sec.
Added 'Abort' option to free packets already queued for transfer. This will, however, close the connection. It should only be used to abort a canceled 'Get' operation.
3.0.0b2
Suppressed redundant error messages. Previously, an error message was displayed for every failed send. Displays only one message now.
Server doesn't display messages at all anymore (that was stupid anyway, having modal alerts on the remote server!). Messages are logged to file instead.
Fixed bug where the client would crash when fetching empty directories.
Transfering whole directories would cause the client and sometimes the server to crash when the number of files in the folder is very large. Restricted folder transfer to a maximum of 200 files.
Client now displays progress while receiving file information when fetching whole directories. People used to think that the server or client is 'stuck'. This is particularly important over slow links.
Client now ensures that the host name field is not empty when OK button is clicked (thus causing a crash...)
Client now updates the file display properly.
3.0.0b1
Server resolves incoming IP addresses properly.
3.0.0
EasyTransfer 2.2.1 is dead. 3.0.0 is a complete rewrite from scratch, so little to report.....